<?php
declare (strict_types = 1);
/**
 * Created by PhpStorm.
 * User: weiyi
 * Date: 2021/04/15
 * Time: 00:12
 */
namespace come\traits;


trait Jump
{

    /**
     * 构造方法
     */
    public function __construct()
    {

    }

    /**
     * 操作成功跳转的快捷方法
     * @access protected
     * @param  mixed $msg 提示信息
     * @param  string $url 跳转的URL地址
     * @param  mixed $data 返回的数据
     * @param  integer $wait 跳转等待时间
     * @param  array $header 发送的Header信息
     * @return void
     */
    protected function success($msg = '成功', $data = '',$otherData='')
    {
        $dataArr = ['code' => 1,'msg' => $msg,'data' => $data];
        if(!empty($otherData)){
            $dataArr = array_merge($dataArr,$otherData);
        }
        return $this->toJson($dataArr);
    }

    /**
     * 操作错误跳转的快捷方法
     * @access protected
     * @param  mixed $msg 提示信息
     * @param  string $url 跳转的URL地址
     * @param  mixed $data 返回的数据
     * @return void
     */
    protected function error($msg = '失败', $data = '')
    {
        echo $this->toJson(['code' => 0,'msg' => $msg,'data' => $data]);
        exit();
    }

    /**
     * 返回json数据
     * @param $data
     * @return false|string
     */
    protected function responseJson($data){
        echo $this->toJson($data);
    }

    /**
     * URL重定向
     * @param string $url
     */
    protected function redirect(string $url)
    {
        header("Location: ".$url);
    }

    private function toJson($data){
        header("Content-Type: application/json; charset=utf-8");
        return json_encode($data,JSON_UNESCAPED_UNICODE);
    }
}